import 'package:bluetooth_protocols_plugin/library.dart';

/*
  typedef ARM_PACKED struct{
    int16_t bus_voltage;                  //当前电池总电压      单位 0.01V
    int16_t bus_current;                  //当前电池输出总电流  单位 0.01A
    int16_t charge_voltage;               //充电口电压          单位 0.01V （来自驱动板）
    int16_t charge_current;               //充电总电流          单位 0.01A （来自驱动板）
    int16_t speed;                        //当前车速            单位 0.01km/h
    int16_t acce;                         //行驶加速度          单位 0.01km/h/s
    int16_t torque;                       //电机输出扭矩        单位 0.01N/m
    int16_t output_rate;                  //输出矢量电压百分比  单位 0.01%  范围 0~10000
    int16_t battery_output_power;         //电池输出功率        单位 1W
    int16_t motor_output_power;           //电机输出功率        单位 1W
    int16_t pitch_angle;                  //当前俯仰角度        单位 0.01°
    int16_t roll_angle;                   //当前翻滚角度        单位 0.01°
    int16_t aim_pitch_angle;              //当前目标俯仰角度    单位 0.01°
    int16_t speeding_braking_angle;       //加减速主动偏角      单位 0.01°
    uint16_t mileage;                     //本次里程            单位 0.01km
    uint16_t reserve1[2];                 //保留

    uint16_t battery_percentage;          //剩余电量            单位 0.01%
    uint16_t battery_percentage_for_ride; //剩余可行驶的电量百分比（剩余可行驶电量占总可行驶电量的比值） 单位 0.01%
    uint16_t estimated_total_mileage;     //预计满电可行驶里程  单位 0.01km
    uint16_t rt_over_speed_tilt_back_threshold;       //实时超速翘板阈值   单位 0.01km/h
    uint16_t rt_over_speed_warning_threshold;         //实时超速报警阈值   单位 0.01km/h
    uint16_t rt_over_output_tilt_back_threshold;      //实时输出饱和翘板阈值   单位 0.01%
    uint16_t rt_over_output_warning_threshold;        //实时输出饱和报警阈值   单位 0.01%
    uint16_t rt_over_bus_current_tilt_back_threshold; //实时母线过流翘板阈值   单位 0.01A
    uint16_t rt_over_bus_current_warning_threshold;   //实时母线过流报警阈值   单位 0.01A
    uint16_t rt_phase_current_limit;                  //实时相线限流值            单位 0.01A
    uint16_t reserve2[2];                 //保留

    int8_t mos_temperature;               //散热器(MOS管)温度   单位 °C  偏置80，即数值0代表80°C
    int8_t motor_temperature;             //电机温度            单位 °C  偏置80，即数值0代表80°C
    int8_t battery_temperature;           //电池温度            单位 °C  偏置80，即数值0代表80°C
    int8_t board_temperature;             //主板高温区温度      单位 °C  偏置80，即数值0代表80°C
    int8_t cpu_temperature;               //驱动板 CPU 温度     单位 °C  偏置80，即数值0代表80°C
    int8_t imu_temperature;               //IMU 温度            单位 °C  偏置80，即数值0代表80°C
    int8_t battery_max_cell_temperature;  //电池电芯最高温度    单位 °C  偏置80，即数值0代表80°C
    int8_t battery_max_bms_temperature;   //电池BMS最高温度     单位 °C  偏置80，即数值0代表80°C
    int8_t lamp_temperature;              //照明灯温度          单位 °C  偏置80，即数值0代表80°C
    uint8_t env_brightness;               //环境光亮度          单位 1%
    uint8_t lamp_brightness;              //照明灯实时亮度      单位 1%
    uint8_t lte_signal;                   //LTE信号强度  0 无信号  1 一格信号  2 二格信号  3 三格信号  4 四格信号
    uint8_t reserve3[4];                  //保留
  }GNUC_PACKED VX_REALTIME_INFO;
*/

// V12s 实时信息
class V12sRealtimeInfo extends LorinRealtimeInfo {
  V12sRealtimeInfo.fromBytes(super.bytes) : super.fromBytes();

  // 将对象转换为Map
  @override
  Map<String, dynamic> toMap() {
    var map = super.toMap(); // 先获取父类的 Map
    map['version'] = '$runtimeType';
    return map;
  }
}
